diff options
Diffstat (limited to 'app/[lng]/partners/(partners)/vendor-data/layout.tsx')
| -rw-r--r-- | app/[lng]/partners/(partners)/vendor-data/layout.tsx | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/app/[lng]/partners/(partners)/vendor-data/layout.tsx b/app/[lng]/partners/(partners)/vendor-data/layout.tsx index cae8d10b..9621d23f 100644 --- a/app/[lng]/partners/(partners)/vendor-data/layout.tsx +++ b/app/[lng]/partners/(partners)/vendor-data/layout.tsx @@ -4,33 +4,43 @@ import { cookies } from "next/headers" import { Shell } from "@/components/shell" import { getVendorProjectsAndContracts } from "@/lib/vendor-data/services" import { VendorDataContainer } from "@/components/vendor-data/vendor-data-container" -import { authOptions } from "@/app/api/auth/[...nextauth]/route"; -import { getServerSession } from "next-auth"; +import { authOptions } from "@/app/api/auth/[...nextauth]/route" +import { getServerSession } from "next-auth" import { InformationButton } from "@/components/information/information-button" +import { useTranslation } from "@/i18n" + +interface VendorDataLayoutProps { + children: React.ReactNode + params?: { locale?: string } +} + // Layout 컴포넌트는 서버 컴포넌트입니다 export default async function VendorDataLayout({ children, -}: { - children: React.ReactNode -}) { + params, +}: VendorDataLayoutProps) { + // 기본 언어는 'ko'로 설정, params.locale이 있으면 사용 + const lng = params?.locale || 'ko' + const { t } = await useTranslation(lng, 'engineering') + const session = await getServerSession(authOptions) const vendorId = session?.user.companyId // const vendorId = "17" const idAsNumber = Number(vendorId) - + // 프로젝트 데이터 가져오기 - const projects = await getVendorProjectsAndContracts(idAsNumber) + const projects = await getVendorProjectsAndContracts(idAsNumber) // 레이아웃 설정 쿠키 가져오기 // Next.js 15에서는 cookies()가 Promise를 반환하므로 await 사용 const cookieStore = await cookies() - + // 이제 cookieStore.get() 메서드 사용 가능 const layout = cookieStore.get("react-resizable-panels:layout:mail") const collapsed = cookieStore.get("react-resizable-panels:collapsed") - + const defaultLayout = layout ? JSON.parse(layout.value) : undefined - const defaultCollapsed = collapsed ? JSON.parse(collapsed.value) : undefined + const defaultCollapsed = collapsed ? JSON.parse(collapsed.value) : undefined return ( <Shell className="gap-2"> @@ -39,7 +49,7 @@ export default async function VendorDataLayout({ <div> <div className="flex items-center gap-2"> <h2 className="text-2xl font-bold tracking-tight"> - 협력업체 데이터 입력 + {t('layout.page_title')} </h2> <InformationButton pagePath="partners/vendor-data" /> </div> @@ -49,12 +59,12 @@ export default async function VendorDataLayout({ </div> </div> </div> - + <section className="overflow-hidden rounded-[0.5rem] border bg-background shadow"> <div className="hidden flex-col md:flex"> {projects.length === 0 ? ( <div className="p-4 text-center text-sm text-muted-foreground"> - No projects found for this vendor. + {t('layout.no_projects')} </div> ) : ( <VendorDataContainer |
